Image processing, computer vision, and other application domains often rely on two-dimensional (2D) or spatial information. Algorithms operating on such spatial information can benefit from a memory subsystem that matches memory access patterns to common memory layouts to simplify address computation and a programming model. In conventional systems, a digital image is often stored in memory in row-major or col-major order. However, many image processing algorithms may access data localized to a specific portion of the image, which requires data from different rows of the image that is not stored in a contiguous portion of memory. For example, a 5×5 convolution kernel may be used to filter a plurality of pixels in an image such that five adjacent pixels from five adjacent rows in the image are sampled to be processed by the convolution kernel. Sampling such values would require pixel data to be fetched from memory from at least five different contiguous locations. A conventional programming model would require a programmer to calculate at least five different offsets into the image file in the memory system to fetch the required data. Consequently, fetching the image data in this manner requires a plurality of instructions to fetch a contiguous, 2D portion of the image. Thus, there is a need for addressing these issues and/or other issues associated with the prior art.